As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Some information handling systems utilize an industry standard BIOS (basic input output system) Boot Specification (BBS) for booting up the system. The BBS is an industry standard originally sponsored by Compaq Computer Corporation, Phoenix Technologies Ltd., and Intel Corporation to define an initialization process through which operating system software is loaded into system memory or storage so that the system can operate application software. In part, the BBS defines how bootable devices are handled by computer systems. One version of the BBS is Version 1.01 dated Jan. 11, 1996, which is hereby incorporated by reference in its entirety.
With respect to handling different bootable devices in a system, the industry standard BBS advocates the use of two separate device lists. A first list is used to keep track of and prioritize the device from which the initial program load should occur (Initial Program Load (IPL) list), and a second list is used to keep track of the connection vectors for certain types of bootable devices (Boot Connection Vector (BCV) list). IPL devices are processed in sequence looking for an operating system to launch. One entry in the IPL list indicates when the BCV list is to be processed. BCV devices are hard drives (IDE, SATA, SCSI, RAID, etc.) and any other device that can emulate a hard drive (like a USB key drive). BCV devices are different from IPL devices in that their boot connection vector are called to link them into the hard disk chain, which is typically based upon system interrupt 13 (INT 13). The order in which BCV devices are linked into the INT 13 chain is significant in that it determines the drive number (or numbers) the device will use. One significant problem caused by this two-list implementation provided in the BBS standard is its complexity. This complexity makes the two-list implementation difficult for the majority of the user community to grasp and relatively inflexible in that IPL and BCV devices can not be intermingled.
Most BIOS vendors use a multiple list implementation in some form. Some BIOS vendors stick with IPL and BCV lists as set forth in the BBS standard, while others actually allow most or all IPL entries to invoke separate sub-lists. For example, an IPL entry of “Network Device” processes a list containing only NICs (network interface cards) and LOMs (LAN on motherboard devices); and an IPL entry of “Removable Devices” would process a list of floppy drives, ZIP drives, and LS120 drives (high-capacity removable disk drive).
FIG. 5A (prior art) is a block diagram for a two-list implementation of the BBS. The first list is IPL list 502, and the second list is BCV list 504. The IPL list 502 includes an ordered list of device types that will be initialized as the system boots up, and the order determines the actual order in which the devices will be initialized by the system. As shown in FIG. 5A (prior art), the IPL list 502 includes floppy drive 510, CDROM drive 512, hard drives 514, and NIC (network interface card) 518. The BCV list 504 includes an ordered list of hard drive devices, and the order determines the order in which the devices will be linked in the INT 13 chain and accessed in an effort to boot the system. In the embodiment depicted in FIG. 5A (prior art), the hard drive list includes three bootable hard drives and three USB (universal serial bus) drives. In order, these are a first hard drive (DRIVE 1) 522, a second hard drive (DRIVE 2) 524, a third hard drive (DRIVE 3) 526, a first USB drive (USB 1) 532, and a second USB drive (USB 2) 534. Both the IPL list 502 and the BCV list 504 are configurable by the user such that the order of the device types within the IPL list 502 can be selected and such that the order of the INT 13 devices in the BCV list 504 can be selected. Although this two-list approach BBS provides some configurability, one significant limitation is that devices are forced into a signal slot in the IPL list 502 based upon their device type, and devices of different device types can not be intermixed. As depicted, the boot order as defined by the IPL list 502 is: (1) floppy drive 510, (2) CDROM drive 512, (3) hard drives as controlled by BCV list 504, and (5) NIC 518. Once one of these devices is successful in booting the system, the boot process stops.
As another example, the BIOS for portable computer systems from DELL have previously used a single list for the boot process. However, this BIOS processing only allows for a limited and fixed set of BCV devices (integrated HD, module bay HD, docking bay HD, and USB HD). Although requiring a fixed set of BCV devices may work for portable computers, it does not work well for desktop systems, server systems, or other more complex systems, as the potential configuration of BCV devices is virtually endless, making it impractical to provide a fixed list for every possible permutation of IPL and BCV devices.
FIG. 5B (prior art) provides a block diagram for a prior technique for providing intermixed device types in IPL lists where the configuration options were limited due to the nature of the system involved. With this prior technique, a small number of fixed configurations were presented as fixed IPL lists. As shown, fixed IPL LIST 1 550 has an ordered list including floppy drive 510, CDROM drive 512, hard drive 1 522, NIC 518, and hard drive 2 524. Fixed IPL LIST 2 560 has an ordered list including floppy drive 510, NIC 518, hard drive 1 522, CDROM drive 512, and hard drive 2 524. While these fixed IPL lists provided some degree of added flexibility in terms of intermixing device types in the IPL list, they do not allow a user to freely configure boot options. In addition, as stated above, this technique is dependent upon a limited number of possible hardware configurations and is not practical for systems having a wide variety of potential configuration options and bootable device types.